2020-2021 Sunseeker Telemetry and Lighting System
ldopwr_ex1_internalLDOPower.c
Go to the documentation of this file.
1 /* --COPYRIGHT--,BSD
2  * Copyright (c) 2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  * --/COPYRIGHT--*/
32 //******************************************************************************
69 //******************************************************************************
70 
71 #include "driverlib.h"
72 
73 void main (void)
74 {
75  volatile uint16_t i;
76 
77  //Stop WDT
78  WDT_A_hold(WDT_A_BASE);
79 
80  //Enable access to config registers
81  LDOPWR_unLockConfiguration(LDOPWR_BASE);
82 
83  //Configure PU.0 as output pins
84  LDOPWR_enablePort_U_outputs(LDOPWR_BASE);
85 
86  //Set PU.1 = high
87  LDOPWR_setPort_U1_outputData(LDOPWR_BASE,
88  LDOPWR_PORTU_PIN_HIGH
89  );
90 
91  //Set PU.0 = low
92  LDOPWR_setPort_U0_outputData(LDOPWR_BASE,
93  LDOPWR_PORTU_PIN_LOW
94  );
95 
96  //Enable LDO overload indication interrupt
97  LDOPWR_clearInterrupt(LDOPWR_BASE,
98  LDOPWR_LDO_OVERLOAD_INDICATION_INTERRUPT
99  );
100  LDOPWR_enableInterrupt(LDOPWR_BASE,
101  LDOPWR_LDO_OVERLOAD_INDICATION_INTERRUPT
102  );
103 
104  //Disbale access to config registers
105  LDOPWR_lockConfiguration(LDOPWR_BASE);
106 
107  //continuous loop
108  while (1)
109  {
110  //Delay
111  for (i = 50000; i > 0; i--){}
112 
113  //Enable access to config registers
114  LDOPWR_unLockConfiguration(LDOPWR_BASE);
115 
116  //XOR PU.0/1
117  LDOPWR_togglePort_U1_outputData(LDOPWR_BASE);
118  LDOPWR_togglePort_U0_outputData(LDOPWR_BASE);
119 
120  //Disbale access to config registers
121  LDOPWR_lockConfiguration(LDOPWR_BASE);
122  }
123 }
124 
125 //******************************************************************************
126 //
127 //This is the LDO_PWR_VECTOR interrupt vector service routine.
128 //
129 //******************************************************************************
130 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
131 #pragma vector=LDO_PWR_VECTOR
132 __interrupt
133 #elif defined(__GNUC__)
134 __attribute__((interrupt(LDO_PWR_VECTOR)))
135 #endif
137 {
138  if (LDOPWR_getInterruptStatus(LDOPWR_BASE,
139  LDOPWR_LDO_OVERLOAD_INDICATION_INTERRUPT
140  )){
141  //Enable access to config registers
142  LDOPWR_unLockConfiguration(LDOPWR_BASE);
143 
144  //Software clear IFG
145  LDOPWR_clearInterrupt(LDOPWR_BASE,
146  LDOPWR_LDO_OVERLOAD_INDICATION_INTERRUPT
147  );
148 
149  //Disable access to config registers
150  LDOPWR_lockConfiguration(LDOPWR_BASE);
151 
152  //Over load indication; take necessary steps in application firmware
153  while (1) ;
154  }
155 }
156 
void main(void)
void LDOInterruptHandler(void)